Vuex是什么?
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化,适用于大中型单页应用(SPA)
什么时候,我们需要用到 Vuex 呢?
其实上面的概念已经告诉我们了,即集中式的管理所有组件的状态,简单的说,就是当我们的应用遇到多个组件共享状态的时候,导致单向数据流的简洁性很容易被破坏。例如:商城项目的购物车数量状态,你可以在很多地方修改购物车里的商品状态和商品数量。这时候我们的 Vuex 就登场了,可以很轻松的管理购物车的状态。
Vuex思想流程图:

其实可以说,在 vue 中,所有组件 data 里面的变量都可以称为 State,也可以说是 vue 项目的首要核心概念,我们在 vue 里面使用状态去管理和操控我们的 dom,而不是像过去那样直接操控我们的 dom。即:通过 state 驱动应用的数据源,以声明方式将 state 映射到视图(view),通过 actions,响应在 view 上的用户输入导致的 state 的状态变化:

注意:上面说过,上图的单项数据流在多个组件共享状态很容易遭到破坏,所以我们才有了Vuex.
Vuex 使用单一状态树,用一个对象就包含了全部的应用层级状态(State是唯一数据源),每个应用将仅仅包含一个 store 实例。
至于 Vuex 的其他具体核心概念和细节,这里就不再多说了,官方文档写的特详细:Vuex官网
简单使用
利用 Vuex 记录登陆状态与购物车商品数量
main.js
1 | import Vuex from 'vuex' |
在 Header.vue 组件中通过 this.$store.commit("mutationsName",args); 提交修改 nickName 状态:
1 | import axios from 'axios' |
在 Cart.vue 中修改 cartCount 状态:
1 | import axios from 'axios' |
完~